﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using OSIRIS.Client.OSIRISService;

namespace OSIRIS.Client
{
    class Program
    {
        /// <summary>
        /// Ingangspunt van de applicatie.
        /// </summary>
        /// <param name="args">Command-line argumenten</param>
        static void Main(string[] args)
        {
            /* maak client aan */
            OSIRISServiceClient client = new OSIRISServiceClient();

            /* haal studentgegevens op */
            StudentGegevens result = client.GetStudentGegevens("09079378");

            /* sluit verbinding */
            client.Close();

            /* output informatie */
            Console.WriteLine("Gegevens ontvangen van " + result.Voornaam + " " + result.Achternaam);
            Console.ReadLine();
        }

        /// <summary>
        /// Hash een string met het SHA256 algoritme.
        /// </summary>
        /// <param name="password">Het wachtwoord om te hashen</param>
        /// <returns>De 64 karakters van de hash</returns>
        static string Hash(string password)
        {
            /* haal de byte array op van het wachtwoord */
            Byte[] bytes = Encoding.UTF8.GetBytes(password);

            /* maak SHA256 algoritme aan en hash de bytes */
            HashAlgorithm algorithm = new SHA256CryptoServiceProvider();
            Byte[] hashBytes = algorithm.ComputeHash(bytes);

            /* converteer de bytes naar een string */
            string passwordHash = BitConverter.ToString(hashBytes);

            /* formatteer de string */
            passwordHash = passwordHash.ToLower().Replace("-", "");

            /* return de string */
            return passwordHash;
        }
    }
}
